/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Persistencia;

import java.io.Serializable;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlRootElement;

/**
 *
 * @author BATAQUERO
 */
@Entity
@Table(name = "objetivo_inicial", catalog = "Sp2_DB", schema = "")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "ObjetivoInicial.findAll", query = "SELECT o FROM ObjetivoInicial o"),
    @NamedQuery(name = "ObjetivoInicial.findByObjIniConsec", query = "SELECT o FROM ObjetivoInicial o WHERE o.objetivoInicialPK.objIniConsec = :objIniConsec"),
    @NamedQuery(name = "ObjetivoInicial.findByIdEstudiante", query = "SELECT o FROM ObjetivoInicial o WHERE o.objetivoInicialPK.idEstudiante = :idEstudiante"),
    @NamedQuery(name = "ObjetivoInicial.findByNombreProyecto", query = "SELECT o FROM ObjetivoInicial o WHERE o.nombreProyecto = :nombreProyecto"),
    @NamedQuery(name = "ObjetivoInicial.findByDescripcionProyectoCargo", query = "SELECT o FROM ObjetivoInicial o WHERE o.descripcionProyectoCargo = :descripcionProyectoCargo"),
    @NamedQuery(name = "ObjetivoInicial.findByFuncionesDesempenar", query = "SELECT o FROM ObjetivoInicial o WHERE o.funcionesDesempenar = :funcionesDesempenar"),
    @NamedQuery(name = "ObjetivoInicial.findByObjetivosPersonales", query = "SELECT o FROM ObjetivoInicial o WHERE o.objetivosPersonales = :objetivosPersonales"),
    @NamedQuery(name = "ObjetivoInicial.findByObjetivosEmpresa", query = "SELECT o FROM ObjetivoInicial o WHERE o.objetivosEmpresa = :objetivosEmpresa"),
    @NamedQuery(name = "ObjetivoInicial.findByAceptacionEstudiante", query = "SELECT o FROM ObjetivoInicial o WHERE o.aceptacionEstudiante = :aceptacionEstudiante"),
    @NamedQuery(name = "ObjetivoInicial.findByAceptacionSupervisorEnt", query = "SELECT o FROM ObjetivoInicial o WHERE o.aceptacionSupervisorEnt = :aceptacionSupervisorEnt"),
    @NamedQuery(name = "ObjetivoInicial.findByAceptacionSupervisorUniv", query = "SELECT o FROM ObjetivoInicial o WHERE o.aceptacionSupervisorUniv = :aceptacionSupervisorUniv")})
public class ObjetivoInicial implements Serializable {
    private static final long serialVersionUID = 1L;
    @EmbeddedId
    protected ObjetivoInicialPK objetivoInicialPK;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 50)
    @Column(name = "nombre_proyecto")
    private String nombreProyecto;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 100)
    @Column(name = "descripcion_proyecto_cargo")
    private String descripcionProyectoCargo;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 500)
    @Column(name = "funciones_desempenar")
    private String funcionesDesempenar;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 500)
    @Column(name = "objetivos_personales")
    private String objetivosPersonales;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 500)
    @Column(name = "objetivos_empresa")
    private String objetivosEmpresa;
    @Size(max = 2)
    @Column(name = "aceptacion_estudiante")
    private String aceptacionEstudiante;
    @Size(max = 2)
    @Column(name = "aceptacion_supervisor_ent")
    private String aceptacionSupervisorEnt;
    @Size(max = 2)
    @Column(name = "aceptacion_supervisor_univ")
    private String aceptacionSupervisorUniv;
    @JoinColumn(name = "id_estudiante", referencedColumnName = "id_estudiante", insertable = false, updatable = false)
    @ManyToOne(optional = false)
    private Estudiante estudiante;

    public ObjetivoInicial() {
    }

    public ObjetivoInicial(ObjetivoInicialPK objetivoInicialPK) {
        this.objetivoInicialPK = objetivoInicialPK;
    }

    public ObjetivoInicial(ObjetivoInicialPK objetivoInicialPK, String nombreProyecto, String descripcionProyectoCargo, String funcionesDesempenar, String objetivosPersonales, String objetivosEmpresa) {
        this.objetivoInicialPK = objetivoInicialPK;
        this.nombreProyecto = nombreProyecto;
        this.descripcionProyectoCargo = descripcionProyectoCargo;
        this.funcionesDesempenar = funcionesDesempenar;
        this.objetivosPersonales = objetivosPersonales;
        this.objetivosEmpresa = objetivosEmpresa;
    }

    public ObjetivoInicial(int objIniConsec, int idEstudiante) {
        this.objetivoInicialPK = new ObjetivoInicialPK(objIniConsec, idEstudiante);
    }

    public ObjetivoInicialPK getObjetivoInicialPK() {
        return objetivoInicialPK;
    }

    public void setObjetivoInicialPK(ObjetivoInicialPK objetivoInicialPK) {
        this.objetivoInicialPK = objetivoInicialPK;
    }

    public String getNombreProyecto() {
        return nombreProyecto;
    }

    public void setNombreProyecto(String nombreProyecto) {
        this.nombreProyecto = nombreProyecto;
    }

    public String getDescripcionProyectoCargo() {
        return descripcionProyectoCargo;
    }

    public void setDescripcionProyectoCargo(String descripcionProyectoCargo) {
        this.descripcionProyectoCargo = descripcionProyectoCargo;
    }

    public String getFuncionesDesempenar() {
        return funcionesDesempenar;
    }

    public void setFuncionesDesempenar(String funcionesDesempenar) {
        this.funcionesDesempenar = funcionesDesempenar;
    }

    public String getObjetivosPersonales() {
        return objetivosPersonales;
    }

    public void setObjetivosPersonales(String objetivosPersonales) {
        this.objetivosPersonales = objetivosPersonales;
    }

    public String getObjetivosEmpresa() {
        return objetivosEmpresa;
    }

    public void setObjetivosEmpresa(String objetivosEmpresa) {
        this.objetivosEmpresa = objetivosEmpresa;
    }

    public String getAceptacionEstudiante() {
        return aceptacionEstudiante;
    }

    public void setAceptacionEstudiante(String aceptacionEstudiante) {
        this.aceptacionEstudiante = aceptacionEstudiante;
    }

    public String getAceptacionSupervisorEnt() {
        return aceptacionSupervisorEnt;
    }

    public void setAceptacionSupervisorEnt(String aceptacionSupervisorEnt) {
        this.aceptacionSupervisorEnt = aceptacionSupervisorEnt;
    }

    public String getAceptacionSupervisorUniv() {
        return aceptacionSupervisorUniv;
    }

    public void setAceptacionSupervisorUniv(String aceptacionSupervisorUniv) {
        this.aceptacionSupervisorUniv = aceptacionSupervisorUniv;
    }

    public Estudiante getEstudiante() {
        return estudiante;
    }

    public void setEstudiante(Estudiante estudiante) {
        this.estudiante = estudiante;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (objetivoInicialPK != null ? objetivoInicialPK.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof ObjetivoInicial)) {
            return false;
        }
        ObjetivoInicial other = (ObjetivoInicial) object;
        if ((this.objetivoInicialPK == null && other.objetivoInicialPK != null) || (this.objetivoInicialPK != null && !this.objetivoInicialPK.equals(other.objetivoInicialPK))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "Persistencia.ObjetivoInicial[ objetivoInicialPK=" + objetivoInicialPK + " ]";
    }
    
}
